package com.gitee.mrj.aiboot.annotation.config.sf.ui.widget;

import com.gitee.mrj.aiboot.annotation.config.KV;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE})
@Documented
public @interface SFObjectWidget {
    /**
     * 是否显示扩展，点击隐藏内容，默认：`true`
     * - 限 `type === 'card'`
     */
    boolean showExpand() default true;

    /**
     * 展开状态，默认：`true`
     * - 限 `type === 'card'`
     */
    boolean expand() default true;

    /**
     * 是否显示标题，默认：`false`
     */
    boolean showTitle() default false;

    /**
     * 渲染类型
     * - `card` 使用 `nz-card` 渲染
     * - `default` 使用默认渲染
     */
    boolean card() default false;

    /**
     * 等同 `nzSize` 属性，默认：`small`
     */
    CardSize cardSize() default CardSize.DEFAULT;

    /**
     * 等同 `nzBodyStyle` 属性
     */
    KV[] cardBodyStyle() default {};


    /**
     * 等同 `nzBorderless` 属性，是否移除边框，默认：`false`
     */
    boolean cardBorderless() default false;

    public enum CardSize {
        DEFAULT("default"), SMALL("small");

        private final String small;

        CardSize(String small) {
            this.small = small;
        }

        public String value() {
            return this.small;
        }
    }
}
